//
// Created by jiangpenghui on 2023/5/15.
//

#ifndef CMAKECXX_OBJ_H
#define CMAKECXX_OBJ_H

#include <iostream>

extern int o13;

using namespace std;
namespace MyLib {
    class Obj {
        string str;
    public:
        Obj(string _str) : str(_str) {
            cout << "create Obj " << o13 << endl;
        }
    };

}


class Obj {
    char c;
public:
    Obj(char _c) : c(_c) {
        cout << "Obj:Obj() for " << c << endl;
    }

    ~Obj() {
        cout << "Obj : ~Obj() for " << c << endl;
    }

    char getValue() {
        return c;
    }


};


namespace {
    MyLib::Obj o = MyLib::Obj("str");
    Obj o1 = Obj('a');
}



namespace X {

    class Y {
        static int i;

    public:
        void f() {};
    };

    class Z;

    void func();
}


void f();

void g();

#endif //CMAKECXX_OBJ_H
